Data transmission through a communications network is not instantaneous, and always involves a delay between time of transmission of a data packet at a source node and time of its reception at a destination node. It is useful to represent the delay experienced by a packet as the sum of two components, the floor delay (FD) and the queuing delay (QD). The floor delay is the minimum obtainable delay and is determined by physical features of the communications path from the source node to the destination node. The queuing delay, which results from a packet waiting in queues of network elements along the communications path, is dependent on the volume of packet traffic along the path. When a packet is “lucky” enough to traverse all nodes along its path with no queuing delay, its delay is solely the FD. Low levels of interfering traffic result in a small additional QD, while near-congestion levels of packet traffic result in increased queue residence times at one or more nodes traversed, thus increasing the QD component.
In some cases bidirectional packet traffic is co-routed, that is, if the packets sent from a first node to a second node follow a path that traverses some sequence of network elements and links, then packets sent from the second node to the first node follow a path that traverses the same network elements and links in reverse order. Needless to say, when bidirectional traffic is not co-routed, one can't say anything about packet delays in the two directions, as the packets traverse different numbers of nodes and different lengths of links. However, even when bidirectional traffic is co-routed, resulting in (at least approximately) identical FDs, the total packet delays may be different in the two directions due to different QDs resulting from different volumes of packet traffic in the opposing directions.
The packet delay we have been describing is said to be a one-way delay (OWD), that is, the time taken by a packet transmitted from a first node to traverse the network and arrive at a second node. This is in contrast to Round Trip Time (RTT), the time taken for a packet to travel from the first node to the second node, to be reflected by the second node and to return to the first node. OWD may be quantified as the difference between T2, the time of reception at the second node, and T1, the time of transmission from the first node. Accurate measurement of OWD is challenging because T1 is measured by a first clock situated at the first node (which we shall call the first node clock), while T2 is measured by a second clock situated at the second node (second node clock). Lack of synchronization between these two node clocks leads to inaccuracy of the measured OWD. In contrast, RTT can be measured more accurately, since both initial transmission time and final reception time are measured according to the same clock, namely the first node clock.
One method to accurately measure OWD involves synchronizing the two node clocks, e.g., by use of a packet a time distribution protocol such as Network Time Protocol (NTP) or Precision Time Protocol (PTP). For example, the second node clock may be synchronized to the first node clock, or both may be synchronized to a common reference clock.
An alternative method to achieve accurate OWD measurement utilizes a virtual clock. A virtual clock is an abstract entity that maintains all the information necessary to convert times as measured by a given clock into times that would have been measured by a reference clock. The virtual clock tracks packet transmission and reception times and performs the synchronization algorithms that in the previous method would have been performed at the communications node. The result of these algorithms is a “virtual clock state” that includes time-related values, such as frequency and time offsets, needed to perform conversions between times as seen by a node clock and times as seen by the reference clock.